本发明公开了一种容灾数据备份的方法及系统,属于网络管理领域。该方法包括:接收网管系统发送的待备份数据文件;对所述待备份数据文件进行分割,得到分割的数据块;利用弱校验值哈希算法和强校验值哈希算法,针对当前数据块计算其数据指纹值,并在已备份数据文件中查找是否有相同数据指纹值的目标数据块;如果有,则将所述目标数据块与所述当前数据块进行逐字节比较;根据比较结果进行所述当前数据块的备份。该系统包括:接收模块、分割模块、计算和查找模块、比较模块和备份模块。本发明的技术方案可以提高数据备份文件的适用性,减少存储空间占用,提高系统性能。
1.一种容灾数据备份的方法,其特征在于,包括:接收网管系统发送的待备份数据文件;对所述待备份数据文件进行分割,得到分割的数据块;先利用弱校验值哈希算法针对当前数据块计算其第一数据指纹值,并以所述第一数据指纹值在已备份数据文件中查找是否有相同所述第一数据指纹值的目标数据块,如果有,则利用强校验值哈希算法针对所述当前数据块计算其第二数据指纹值,并通过查找已备份数据文件的hash表在所述已备份数据文件中查找有相同所述第二数据指纹值的所述目标数据块;所述hash表使用三元组表示的元素项包括:数据块的MD5校验值、MD5校验值相同的数据块的数量以及这些数据块的逻辑索引号;其中,将MD5校验值相同的数据块的数量以及这些数据块的逻辑索引号合并在一起形成链表;如果有,则将所述目标数据块与所述当前数据块进行逐字节比较;根据比较结果进行所述当前数据块的备份。
2.如权利要求1所述的方法,其特征在于,所述根据比较结果进行所述当前数据块的备份,包括:当比较结果相同时,则确定所述当前数据块是重复数据块,并存储所述当前数据块的逻辑索引信息;当比较结果不同时,则确定所述当前数据块是新的唯一数据块,并存储所述当前数据块的元信息。
3.如权利要求1所述的方法,其特征在于,如果在已备份数据文件中未查找到有相同数据指纹值的目标数据块,则存储所述当前数据块的元信息。
4.如权利要求1到3任意一项所述的方法,其特征在于,根据网元数量对所述待备份数据文件进行分割,得到分割的数据块。
5.如权利要求2或3所述的方法,其特征在于,所述当前数据块的元信息包括:当前数据块、当前数据块的逻辑索引信息、当前数据块的弱校验值和强校验值。
6.一种容灾数据备份的系统,其特征在于,包括:接收模块,用于接收网管系统发送的待备份数据文件;分割模块,用于对所述待备份数据文件进行分割,得到分割的数据块;计算和查找模块,用于先利用弱校验值哈希算法针对当前数据块计算其第一数据指纹值,并以所述第一数据指纹值在已备份数据文件中查找是否有相同所述第一数据指纹值的目标数据块,如果有,则利用强校验值哈希算法针对所述当前数据块计算其第二数据指纹值,并通过查找已备份数据文件的hash表在所述已备份数据文件中查找有相同所述第二数据指纹值的所述目标数据块;所述hash表使用三元组表示的元素项包括:数据块的MD5校验值、MD5校验值相同的数据块的数量以及这些数据块的逻辑索引号;其中,将MD5校验值相同的数据块的数量以及这些数据块的逻辑索引号合并在一起形成链表;比较模块,用于在已备份数据文件中查找到有相同第二数据指纹值的目标数据块时,则将所述目标数据块与所述当前数据块进行逐字节比较;备份模块,用于根据所述比较模块的比较结果进行所述当前数据块的备份。
7.如权利要求6所述的系统,其特征在于,所述比较模块,具体用于当比较结果相同时,则确定所述当前数据块是重复数据块,并存储所述当前数据块的逻辑索引信息;当比较结果不同时,则确定所述当前数据块是新的唯一数据块,并存储所述当前数据块的元信息。
8.如权利要求6所述的系统,其特征在于,所述备份模块,还用于如果在已备份数据文件中未查找到有相同数据指纹值的目标数据块,则存储所述当前数据块的元信息。
9.如权利要求7所述的系统,其特征在于,所述当前数据块的元信息包括:当前数据块、当前数据块的逻辑索引信息、当前数据块的弱校验值和强校验值。
技术领域本发明属于网络管理系统,特别涉及一种基于重复数据删除的网管系统异地容灾数据备份的方法及系统。xa0
背景技术网管系统是管理通讯网网元的系统,配置了全网网元的配置数据,这些网元配置数据非常重要,如果没有这些配置数据,网元就不能正常运行业务。基于容灾的考虑,配置数据需要在异地备份起来。一旦网管系统遭受地震、火灾等而被损坏,则可以将异地备份的配置数据恢复过来,以保证网元业务能正常运行。一般而言,配置数据的异地备份要求每天备份一次。xa0现有的一种容灾数据的异地备份技术只是简单的将配置数据导出成文件,文件按照日期来命名,然后将文件拷贝到远程备份系统中,但这样做会产生数据冗余的问题。也有其他网管系统考虑到了备份数据的冗余数据的处理,具体处理方法如下:xa0将配置数据导出,生成文本文件,用以记录每个网元具体的配置数据。将该生成的文本文件拷贝到远程备份系统时,备份系统会将今天的配置数据与昨天保存的配置数据对比,提取出有变化的网元的配置数据,保存到今天的备份文件中,未发生变化的网元的配置数据则不保存。xa0这种做法存在明显的缺陷:对网管系统备份的文件有严格要求,网管系统和备份系统要遵守同样的文件格式规定,才能实现数据备份及以后的恢复,不能适用到所有网管系统,适用性差;此外,还要求要求备份文件是文本文件,而文本文件不能压缩,占用存储空间大,而传输未压缩的文本文件,占用网络带宽,对系统资源消耗大,影响系统性能。xa0
发明内容为了提高数据备份文件的适用性,减少存储空间占用,提高系统性能,本发明提供了一种容灾数据备份的方法及系统,技术方案如下:xa0一种容灾数据备份的方法,包括:xa0接收网管系统发送的待备份数据文件;xa0对所述待备份数据文件进行分割,得到分割的数据块;xa0先利用弱校验值哈希算法针对当前数据块计算其第一数据指纹值,并以所述第一数据指纹值在已备份数据文件中查找是否有与相同所述第一数据指纹值的目标数据块,如果有,则利用强校验值哈希算法针对所述当前数据块计算其第二数据指纹值,并通过查找已备份数据文件的hash表在所述已备份数据文件中查找相同所述第二数据指纹值的所述目标数据块;所述hash表使用三元组表示的元素项包括:数据块的MD5校验值、MD5校验值相同的数据块的数量以及这些数据块的逻辑索引号;其中,将MD5校验值相同的数据块的数量以及这些数据块的逻辑索引号合并在一起形成链表;xa0如果有,则将所述目标数据块与所述当前数据块进行逐字节比较;xa0根据比较结果进行所述当前数据块的备份。xa0在本发明优选的一个实施例中,所述根据比较结果进行所述当前数据块的备份,包括:xa0当比较结果相同时,则确定所述当前数据块是重复数据块,并存储所述当前数据块的逻辑索引信息;xa0当比较结果不同时,则确定所述当前数据块是新的唯一数据块,并存储所述当前数据块的元信息。xa0在本发明优选的一个实施例中,如果在已备份数据文件中未查找到有相同数据指纹值的目标数据块,则存储所述当前数据块的元信息。xa0在本发明优选的一个实施例中,根据网元数量对所述待备份数据文件进行分割,得到分割的数据块。xa0在本发明优选的一个实施例中,所述当前数据块的元信息包括:当前数据块、当前数据块的逻辑索引信息、当前数据块的弱校验值和强校验值。xa0一种容灾数据备份的系统,包括:xa0接收模块,用于接收网管系统发送的待备份数据文件;xa0分割模块,用于对所述待备份数据文件进行分割,得到分割的数据块;xa0计算和查找模块,用于先利用弱校验值哈希算法针对当前数据块计算其第一数据指纹值,并以所述第一数据指纹值在已备份数据文件中查找是否有与相同所述第一数据指纹值的目标数据块,如果有,则利用强校验值哈希算法针对所述当前数据块计算其第二数据指纹值,并通过查找已备份数据文件的hash表在所述已备份数据文件中查找相同所述第二数据指纹值的所述目标数据块;所述hash表使用三元组表示的元素项包括:数据块的MD5校验值、MD5校验值相同的数据块的数量以及这些数据块的逻辑索引号;其中,将MD5校验值相同的数据块的数量以及这些数据块的逻辑索引号合并在一起形成链表;xa0比较模块,用于在已备份数据文件中查找到有相同数据指纹值的目标数据块时,则将所述目标数据块与所述当前数据块进行逐字节比较;xa0备份模块,用于根据所述比较模块的比较结果进行所述当前数据块的备份。xa0在本发明优选的一个实施例中,所述比较模块,具体用于当比较结果相同时,则确定所述当前数据块是重复数据块,并存储所述当前数据块的逻辑索引信息;xa0当比较结果不同时,则确定所述当前数据块是新的唯一数据块,并存储所述当前数据块的元信息。xa0在本发明优选的一个实施例中,所述备份模块,还用于如果在已备份数据文件中未查找到有相同数据指纹值的目标数据块,则存储所述当前数据块的元信息。xa0在本发明优选的一个实施例中,所述当前数据块的元信息包括:当前数据块、当前数据块的逻辑索引信息、当前数据块的弱校验值和强校验值。xa0本发明通过对接收的待备份数据文件进行分割,然后利用弱校验值哈希算法和强校验值哈希算法对分割的数据块计算其数据指纹值,以该数据指纹值为关键字进行哈希查找,在查找到相同数据指纹值的目标数据块后,将目标数据块与当前数据块进行逐字节比较,并根据比较结果进行数据块的备份,可以实现对各种格式的数据文件进行备份,提高了备份文件的适用性;xa0可以实时进行重复数据的删除,可以有效控制备份数据的急剧增长,从而增加了有效存储空间,提高了存储效率;并且,备份文件可以压缩,减少网络带宽的占用,提高了系统性能。xa0
附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:xa0图1是本发明提供的容灾数据备份的方法的流程图;xa0图2是本发明提供的网管系统异地容灾数据备份的方法的详细流程图;xa0图3是本发明提供的容灾数据备份的系统的结构图。xa0
具体实施方式为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。xa0如图1所示,本发明提供了一种容灾数据备份的方法,包括:xa0步骤101,接收网管系统发送的待备份数据文件;xa0步骤102,对待备份数据文件进行分割,得到分割的数据块;xa0步骤103,利用弱校验值哈希算法和强校验值哈希算法,针对当前数据块计算其数据指纹值,并在已备份数据文件中查找是否有相同数据指纹值的目标数据块;xa0步骤104,如果有,则将目标数据块与当前数据块进行逐字节比较;xa0步骤105,根据比较结果进行所述当前数据块的备份。xa0在本发明的一个优选实施例中,如果在已备份数据文件中未查找到有相同数据指纹值的目标数据块,则存储当前数据块的元信息。xa0在本发明的一个优选实施例中,根据比较结果进行所述当前数据块的备份,包括:当比较结果相同时,则确定当前数据块是重复数据块,并存储当前数据块的逻辑索引信息;当比较结果不同时,则确定当前数据块是新的唯一数据块,并存储当前数据块的元信息。xa0在本发明的一个优选实施例中,利用弱校验值哈希算法和强校验值哈希xa0算法,针对当前数据块计算其数据指纹值,并在已备份数据文件中查找是否有相同数据指纹值的目标数据块,包括:xa0先利用弱校验值哈希算法针对当前数据块计算其第一数据指纹值,并以所述第一数据指纹值在已备份数据文件中查找是否有与相同第一数据指纹值的目标数据块,如果有,则利用强校验值哈希算法针对当前数据块计算其第二数据指纹值,并在已备份数据文件中查找相同第二数据指纹值的目标数据块。xa0在本发明的一个优选实施例中,根据网元数量对待备份数据文件进行分割,得到分割的数据块。xa0在本发明的一个优选实施例中,元信息包括当前数据块、当前数据块的逻辑索引信息、当前数据块的弱校验值和强校验值。xa0下面结合附图对本发明实施过程进行详细阐述。xa0如图2所示,本发明提供的网管系统异地容灾数据备份的方法,包括:xa0步骤201,网管系统导出网元配置的待备份数据文件,并将该数据文件传输给异地备份系统。xa0其中,该数据文件可以是文本或二进制的任何格式文件。xa0步骤202,备份系统接收待备份数据文件,根据网元数量将该待备份数据文件分割成一组数据块。xa0具体地,采用预先义好的数据块大小对待备份数据文件进行分割。数据块大小可以根据网元数量来确定,10000个网元的配置数据文件可以为300MB。分割文件的数据块粒度太细,则系统资源开销太大;粒度过粗,则重复数据删除的效果不佳。需要在两者之间权衡折衷,根据测试得出如下经验值:网元在1000以内,数据块大小可以是1KB,网元在1000到5000之间数据块大小可以是4KB,网元在5000到10000之间数据块大小可以是8KB。xa0在对待备份数据文件进行分割后,备份系统对每一数据块分配唯一的数据块逻辑索引信息,该逻辑索引信息可以是逻辑索引号。xa0步骤203,备份系统对当前数据块计算数据指纹,并以数据指纹值为关键字在已备份数据文件中进行哈希查找,获取数据指纹相同的目标数据块。xa0具体地,数据指纹是数据块的本质特征,每个唯一数据块具有唯一的数据指纹值,数据指纹值是对数据块内容进行Hash数学运算获得。常用的Hash算法有FNV1、CRC、MD5、SHA1、SHA-256、SHA-512等。不同的Hash算法碰撞发生概率不同(Hash算法都存在碰撞问题,即不同数据块可能会产生相同的数据指纹),计算出来的数据指纹值的位数也不同,相应的计算量也不同。具有更低的碰撞发生概率和更多数据指纹值位数的Hash算法,其计算量大很多。xa0计算数据块的数据指纹,需要在性能和数据安全性方面作权衡,CRChash算法是弱校验Hash算法,计算快速。在本实施例中,采用CRC算法计算的数据指纹值是32位。MD5hash算法是强校验hash算法,具有非常低的碰撞发生概率,算出的数据指纹值是128位。其中,强哈希算法和弱哈希算法通常是以128为作为区分标准,低于128位,则属于弱哈希算法,高于128位属于强哈希算法。备份系统使用CRCxa0hash算法和MD5hash算法为数据块计算数据指纹,具体如下:xa0针对步骤202中分割好的每一数据块,先算用CRCxa0hash算法计算CRC校验值,然后以该CRC校验值为关键字在已备份数据文件中进行hash查找,判断是否有与该CRC校验值相同的匹配项,如果没有,则表示该数据块是新的唯一数据块,此时存储该数据块、该数据块的逻辑索引号以及该数据块的CRC校验值和MD5校验值;如果存在,则用MD5hash算法计算该数据块的MD5校验值,并以该MD5校验值在已备份的数据文件中进行哈希查找,判断是否有该MD5校验值相同的匹配项,如果有,则判断可能存在重复数据块,并转入步骤204;如果没有,则存储该数据块,并创建相关元信息。xa0一般而言,MD5Hash算法不会产生碰撞,对一个数据块(block)计算的MD5校验值是唯一的,也就是说一个数据块对应一个唯一的数据指纹值,可以用1:1映射来表示。传统的hash表的元素项使用二元组表示:xa0<md5_hashkey,block>,其中md5_hashkey表示数据块的md5校验值。xa0但实际情况中,可能存在两个数据块的MD5校验值相同,例如,对数据块1计算的MD5校验值等于对数据块2计算的MD5校验值,多个数据块xa0对应一个数据指纹值,这时就需要使用1:n映射来表示。在本发明中,使用三元组表示hash表的元素项:xa0<md5_hashkey,block_nr,block_IDs>xa0其中,md5_hashkey表示数据块MD5校验值,block_nr表示MD5校验值相同的数据块数量,block_IDs表示这些数据块的逻辑索引号。在本发明算法设计中,将block_nr与block_IDs合并在一块形成链表,结构如下所示:xa0block_nr|block_ID1|block_ID2|...|block_IDnxa0其中block_ID1|block_ID2|...|block_IDn是数据块逻辑块号链表,以下用block_IDxa0list表示数据块逻辑索引号链表,block_nr为链表的长度。xa0在本发明中,实际上是使用链表法来解决hash碰撞问题,每个hash表的元素项的block_IDxa0list长度不定。利用链表法在已备份的数据文件中查找与MD5校验值相同的目标数据块如下:xa0(1)计算当前数据块block的MD5校验值hashkey,即hashkey=hash_md5(block);xa0(2)用hashkey查找已备份数据文件的hash表,bindex=hash_value(hashkey,hash表),其中,bindex表示当前数据块的逻辑索引号;xa0(3)如果在hash表中,未发现匹配元素项,即bindex==NULL,则直接将hashkey插入hash表,并且block_nr=1,block_ID1=当前数据块block的逻辑索引号;xa0(4)如果在hash表中发现匹配元素项,则判断该数据块可能为重复数据块,也可能CRCxa0hash算法、MD5hash算法都发生了碰撞,该数据块不是重复数据块。xa0在本步骤中是先利用弱校验值算法计算当前数据块的第一数据指纹值,再进行数据指纹值查找;然后再利用强校验值算法计算当前数据块的第二数据指纹值,再进行数据指纹值查找;在实际应用中,也可以先利用强校验值算法计算当前数据块的第二数据指纹值,再进行数据指纹值查找;然后再利用弱校验值算法计算当前数据块的第一数据指纹值,再进行数据指纹值查找,具体原理类似,在此不再赘述。xa0步骤204,备份系统将获取的目标数据块与当前数据块进行字节级比较,xa0如果比较结果相同,则转入步骤205;如果比较结果不同,则转入步骤206。xa0步骤205,确定该当前数据块是重复数据块,存储该当前数据块的逻辑索引号。xa0步骤206,确定该当前数据块是新的唯一块,存储当前数据块的元信息,该元信息包括:该当前数据块、该当前数据块的逻辑索引号、CRC校验值和MD5校验值。xa0对于步骤204-206,承接步骤203,在发现相同匹配项后,遍历此匹配元素项的block_IDxa0list,将block_IDxa0list中的每个数据块逻辑索引号对应的目标数据块与当前数据块进行逐字节的比较,如果相同,则说明当前数据块已经存在,存储该当前数据块的逻辑索引号;如果未找到相同数据块,则存储该数据块,将当前数据块插入block_IDxa0list结尾,并将当前数据块写入文件,并且block_nr数值增加1,block_IDn=当前数据块的逻辑索引号。其中,本发明的数据存储可以采用RAID5方式。xa0至此,一个数据文件在备份系统就对应一个逻辑文件表示,由一组数据指纹组成的元信息组成。xa0在完成网元配置的数据文件备份,在出现需要恢复的情况下,备份系统进行文件读取,先读取逻辑文件,然后根据数据块指纹,取出相应数据块,还原物理文件副本,再将此文件副本发给网管系统用于恢复。xa0如图3所示,本发明提供了一种容灾数据备份的系统,包括:xa0接收模块301,用于接收网管系统发送的待备份数据文件;xa0分割模块302,用于对待备份数据文件进行分割,得到分割的数据块;xa0计算和查找模块303,用于利用弱校验值哈希算法和强校验值哈希算法,针对当前数据块计算其数据指纹值,并在已备份数据文件中查找是否有相同数据指纹值的目标数据块;xa0比较模块304,用于在已备份数据文件中查找到有相同数据指纹值的目标数据块时,则将目标数据块与当前数据块进行逐字节比较;xa0备份模块305,用于根据比较模块304的比较结果进行当前数据块的备份。xa0在本发明的一个优选实施例中,备份模块305,还用于如果在已备份数据文件中未查找到有相同数据指纹值的目标数据块,则存储当前数据块的元信息。xa0在本发明的一个优选实施例中,比较模块304,具体用于当比较结果相同时,则确定当前数据块是重复数据块,并存储当前数据块的逻辑索引信息;xa0当比较结果不同时,则确定当前数据块是新的唯一数据块,并存储当前数据块的元信息。xa0在本发明的一个优选实施例中,计算和查找模块303,具体用于先利用弱校验值哈希算法针对当前数据块计算其第一数据指纹值,并以第一数据指纹值在已备份数据文件中查找是否有与相同所述第一数据指纹值的目标数据块,如果有,则利用强校验值哈希算法针对当前数据块计算其第二数据指纹值,并在已备份数据文件中查找相同所述第二数据指纹值的目标数据块。xa0在本发明的一个优选实施例中,分割模块302,具体用于根据网元数量对所述待备份数据文件进行分割,得到分割的数据块。xa0现有的异地容灾数据备份方法是在文本文件基础上,根据文本内容进行比较,进行的重复数据删除。现有的容灾数据的备份有80%数据重复率,但是文本比较删除冗余的方式,没有达到80%的重复数据删除率。而且对于二进制文件无能为例,限制了备份文件的格式,适用性差。本发明提供的容灾数据备份的方法可以适用于各种格式的备份文件,例如文本文件、二进制数据库文件等。由于是基于几KB的二进制数据块进行比较来删除冗余数据,重复数据删除率高,可以接近80%。而且备份数据的次数越多,间隔越短,重复数据删除比就越高。xa0现有技术对于数据文件的分割方法要么分块策略单一,要么是根据文件内容类型,预先进行块边界特征计算,然后再分块,但实际利用到网管系统配置数据上,重复数据删除率不高。本发明提供的容灾数据备份的方法针对网管配置的数据文件这种特定的文件格式,和配置数据周期性备份这种场合,根据网元数量确定数据块大小,有效地提高了备份数据的重复数据删除率。xa0现有技术中采用一种hash算法计算数据指纹,本发明提供的容灾数据备xa0份的方法采用弱校验值hash算法和强校验值hash算法相结合的方式来计算数据指纹,算法速度快,以较小的性能代价极大地降低了碰撞产生的概率,提高了系统性能。此外,弱校验值hash算法和强校验值hash算法相结合的方式,可以实时进行重复数据的删除,备份系统在接收到网管系统的数据文件后,可以在线进行重复数据的删除,转化成本地逻辑文件存储起来,不需要等到后续系统有空闲时再离线处理。整个处理周期短,能够应对需要紧急进行的,间隔很短的异地备份操作。xa0现有的容灾数据备份方法在删除重复数据时仅仅采用了碰撞概率更小的hash算法,没有解决Hash算法的碰撞问题,所以不能被用于网管系统异地容灾数据备份的应用场合,一旦发生碰撞将产生巨大的经济损失。本发明提供的容灾数据备份的方法通过遍历所有数据指纹值相同的数据块,并进行字节完全比较来解决碰撞问题,使得网管系统的数据安全性大大提高,能够应用到网管系统配置数据的异地容灾数据备份这种对数据的安全性要求非常高的场合上。xa0综上所述,本发明提供的容灾数据的备份方法可以适用于各种数据文件格式,适用性强;可以有效控制备份数据的急剧增长,从而增加有效存储空间,提高存储效率,进而节省了存储总成本和管理成本;可以节省数据传输的网络带宽;可以节省空间、电力供应、冷却等运维成本。xa0上述说明示出并描述了本发明的一个优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。xa0